 
; ROBBY

  45*X/Y TO A
  360-A TO AIM
  IF X>Y 45*Y/X+270 TO AIM

START

  10-Y*3 TO SPEEDY
  10-X*3 TO SPEEDX
  AIM TO RADAR
  IF RADAR<0 GOSUB BLAM
  IF Y>25 GOTO START
  IF X>25 GOTO START
  240 TO A
  GOTO SETD

SETR

  GOSUB READY
  60 TO A
  GOSUB BEAM

RITE1

  255-X*2 TO SPEEDX
  128-Y TO SPEEDY
  GOSUB SCAN1
  IF X<98 GOTO RITE1

RITE2

  255-Y*2 TO SPEEDY
  255-X*2 TO SPEEDX
  GOSUB SCAN2
  IF X<210 GOTO RITE2

SETU
  
  GOSUB READY
  330 TO A
  GOSUB BEAM

UP1

  0-Y*2 TO SPEEDY
  128-X TO SPEEDX
  GOSUB SCAN1
  IF Y>158 GOTO UP1

UP2

  255-X*2 TO SPEEDX
  0-Y*2 TO SPEEDY
  GOSUB SCAN2
  IF Y>46 GOTO UP2

SETL

  GOSUB READY
  240 TO A
  GOSUB BEAM

LEFT1

  0-X*2 TO SPEEDX
  128-Y TO SPEEDY
  GOSUB SCAN1
  IF X>158 GOTO LEFT1
  
LEFT2

  0-Y*2 TO SPEEDY
  0-X*2 TO SPEEDX
  GOSUB SCAN2
  IF X>46 GOTO LEFT2

SETD

  GOSUB READY
  150 TO A
  GOSUB BEAM

DOWN1

  255-Y*2 TO SPEEDY
  128-X TO SPEEDX
  GOSUB SCAN1
  IF Y<98 GOTO DOWN1
  
DOWN2

  0-X*2 TO SPEEDX
  255-Y*2 TO SPEEDY
  GOSUB SCAN2
  IF Y<210 GOTO DOWN2
  GOTO SETR

READY

  0 TO SPEEDX TO SPEEDY TO Q TO S
  A-46 TO AIM
  DAMAGE TO D
  ENDSUB

BEAM

  IF S=11 GOTO CHECK
  AIM-10 TO AIM TO RADAR
  IF RADAR<0 GOSUB SHOOT
  IF DAMAGE<D ENDSUB
  S+1 TO S
  GOTO BEAM

SHOOT

  0-RADAR TO SHOT
  IF DAMAGE<D ENDSUB
  AIM TO RADAR
  IF RADAR>0 ENDSUB
  GOTO SHOOT

CHECK

  IF Q=1 ENDSUB
  0 TO S
  1 TO Q
  AIM+115 TO AIM
  GOTO BEAM

BLAM

  0 TO SPEEDX TO SPEEDY
  20-RADAR TO SHOT

BLAM2

  AIM TO RADAR
  IF RADAR>0 ENDSUB
  0-RADAR TO SHOT
  GOTO BLAM2

SCAN1

  A TO AIM TO RADAR
  IF RADAR>0 GOTO BACK
  GOTO BLAM

BACK

  AIM+180 TO AIM TO RADAR
  IF RADAR>0 ENDSUB
  GOTO BLAM

SCAN2

  A+65 TO AIM TO RADAR
  IF RADAR>0 GOTO BACK
  GOSUB BLAM
  GOTO BACK
